// 假设已有 interface 定义： aru_ub_rdgen_cfg_if, ub_rd_req_if, aru_ub_dat_if, aru_payload_if

module tb_top;
    // clock / reset
    logic clk;
    logic rst_n;

    initial begin
        clk = 0;
        forever #5 clk = ~clk;
    end
    initial begin
        rst_n = 0;
        #20 rst_n = 1;
    end

    // instantiate interface instances
    aru_ub_rdgen_cfg_if u_aru_cfg_if_inst ();  // 注意这里实例名可任意
    ub_rd_req_if u_ub_rd_req_if_inst ();
    aru_ub_dat_if u_aru_ub_dat_if_inst ();
    aru_payload_if u_aru_payload_if_inst ();

    // DUT 实例化：把 interface instance 传进去（匹配 modport 类型）
    aru_ub_rdgen dut (
        .clk             (clk),
        .rst_n           (rst_n),
        .u_aru_cfg_if    (u_aru_cfg_if_inst),     // 连接接口实例
        .u_ub_rd_req_if  (u_ub_rd_req_if_inst),
        .u_aru_ub_dat_if (u_aru_ub_dat_if_inst),
        .u_aru_payload_if(u_aru_payload_if_inst)
    );

    // （可选）在 tb 里驱动接口信号，或在接口内写 driver/monitor task/class
    initial begin
        #1000 $finish;
    end
endmodule
